package com.mes.data.domain;

import java.util.List;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.mes.common.core.annotation.Excel;
import com.mes.common.core.web.domain.BaseEntity;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;

/**
 * 数据分析报告主表对象 mes_data_report
 * 
 * @author itflash
 * @date 2025-02-27
 */
public class DataReport extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 主键 */
    private Long id;

    /** 报告编号 */
    @Excel(name = "报告编号")
    private String reportNo;

    /** 报告类型（如生产效率、质量分析等） */
    @Excel(name = "报告类型", readConverterExp = "如=生产效率、质量分析等")
    private String reportType;

    /** 设备编号（可选） */
    @Excel(name = "设备编号", readConverterExp = "可=选")
    private String deviceCode;

    /** 工单编号（可选） */
    @Excel(name = "工单编号", readConverterExp = "可=选")
    private String workOrderNo;

    /** 报告起始时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "报告起始时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date startTime;

    /** 报告结束时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "报告结束时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date endTime;

    /** 报告状态 */
    @Excel(name = "报告状态")
    private String status;

    /** 更新时间 */
    private Date updateDate;

    /** 创建时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "创建时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date createDate;

    /** 数据分析报告明细信息 */
    private List<DataReportDetail> dataReportDetailList;

    public void setId(Long id) 
    {
        this.id = id;
    }

    public Long getId() 
    {
        return id;
    }
    public void setReportNo(String reportNo) 
    {
        this.reportNo = reportNo;
    }

    public String getReportNo() 
    {
        return reportNo;
    }
    public void setReportType(String reportType) 
    {
        this.reportType = reportType;
    }

    public String getReportType() 
    {
        return reportType;
    }
    public void setDeviceCode(String deviceCode) 
    {
        this.deviceCode = deviceCode;
    }

    public String getDeviceCode() 
    {
        return deviceCode;
    }
    public void setWorkOrderNo(String workOrderNo) 
    {
        this.workOrderNo = workOrderNo;
    }

    public String getWorkOrderNo() 
    {
        return workOrderNo;
    }
    public void setStartTime(Date startTime) 
    {
        this.startTime = startTime;
    }

    public Date getStartTime() 
    {
        return startTime;
    }
    public void setEndTime(Date endTime) 
    {
        this.endTime = endTime;
    }

    public Date getEndTime() 
    {
        return endTime;
    }
    public void setStatus(String status) 
    {
        this.status = status;
    }

    public String getStatus() 
    {
        return status;
    }
    public void setUpdateDate(Date updateDate) 
    {
        this.updateDate = updateDate;
    }

    public Date getUpdateDate() 
    {
        return updateDate;
    }
    public void setCreateDate(Date createDate) 
    {
        this.createDate = createDate;
    }

    public Date getCreateDate() 
    {
        return createDate;
    }

    public List<DataReportDetail> getDataReportDetailList()
    {
        return dataReportDetailList;
    }

    public void setDataReportDetailList(List<DataReportDetail> dataReportDetailList)
    {
        this.dataReportDetailList = dataReportDetailList;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("id", getId())
            .append("reportNo", getReportNo())
            .append("reportType", getReportType())
            .append("deviceCode", getDeviceCode())
            .append("workOrderNo", getWorkOrderNo())
            .append("startTime", getStartTime())
            .append("endTime", getEndTime())
            .append("status", getStatus())
            .append("remark", getRemark())
            .append("updateDate", getUpdateDate())
            .append("createDate", getCreateDate())
            .append("createBy", getCreateBy())
            .append("updateBy", getUpdateBy())
            .append("dataReportDetailList", getDataReportDetailList())
            .toString();
    }
}
